In a distributed data storage system, data containers sometimes become so big that they must be partitioned/split over several nodes due to memory limitations and/or performance issues. Partitioning a data container means splitting a data container into several parts as well as combining smaller data containers into a single data container and moving associated data to another node. With some conventional database systems, this requires not only moving the data but also moving one or more logs tracking changes to such data container. These operations can be processor intensive and can also consume additional storage.